package com.csun.cmny.provider.service;

import com.csun.cmny.base.dto.LoginAuthDto;
import com.csun.cmny.core.support.IService;
import com.csun.cmny.provider.model.domain.OmcMedicPlan;
import com.csun.cmny.provider.model.dto.medic.MedicPlanConfirmDto;
import com.csun.cmny.provider.model.dto.medic.MedicPlanDto;
import com.csun.cmny.provider.model.dto.medic.MedicPlanQueryDto;
import com.csun.cmny.provider.model.dto.medic.MedicPlanSignDto;
import com.csun.cmny.provider.model.vo.MedicPlanVo;

import java.util.List;

/**
 * @Auther: chisj chisj@foxmal.com
 * @Date: 2019-08-13 15:08
 * @Description: the interface
 */
public interface OmcMedicPlanService extends IService<OmcMedicPlan> {

    /**
     * query medic plan list with page
     *
     * @param medicPlanQueryDto the medic plan query dto
     *
     * @return  the list
     */
    List<OmcMedicPlan> queryListWithPage(MedicPlanQueryDto medicPlanQueryDto);

    /**
     * medic plan apply
     *
     * @param medicPlanDto  the medic plan dto
     * @param loginAuthDto  the login auth dto
     *
     * @return  the int.
     */
    Integer apply(MedicPlanDto medicPlanDto, LoginAuthDto loginAuthDto);

    /**
     * medic plan monitor confirm
     *
     * @param medicPlanConfirmDto   the medic plan confim dto
     * @param loginAuthDto          the login auth dto
     *
     * @return  the int.
     */
    Integer monitorConfirm(MedicPlanConfirmDto medicPlanConfirmDto, LoginAuthDto loginAuthDto);

    /**
     * medic plan family sign
     *
     * @param medicPlanSignDto  the medic plan sign dto
     * @param loginAuthDto      the login auth dto
     *
     * @return  the int.
     */
    Integer familySign(MedicPlanSignDto medicPlanSignDto, LoginAuthDto loginAuthDto);

    /**
     * medic plan midify
     *
     * @param medicPlanDto  the medic plan dto
     * @param loginAuthDto  the login auth dto
     *
     * @return  the int.
     */
    Integer modify(MedicPlanDto medicPlanDto, LoginAuthDto loginAuthDto);
}
